بررسی سرویس دهنده SSH در لینوكس






فرض كنید مسئول یك شبكه كامپیوتری هستید و بخشی از شبكه در شهر دیگری مستقر است و شما برای مدیریت سیستمها مجبورید روزانه چندین دفعه با هر سیستم از راه دور ارتباط برقراركنید. برای هر سیستم باید یك عملیات passphrase را انجام دهید و این ، وقت و انرژی زیادی از شما خواهد گرفت. فرمان ssh-agent این امكان را به شما می دهدكه فقط یك بار مجبور باشید به سیستم راه دور متصل شوید و بر روی سیستم مقصد سرویس agent را فعال كنید.
در هنگام نصب لینوكس، اگر دقت كرده باشید ، این امكان را دارید كه سرویس دهنده (ssh secure shell) را فعال كنید. SSH سرویسی برای مدیریت و دسترسی به كامپیوتر یا شبكه از راه دور است.rsh و telnet و ftp دیگر ابزارهای برقراری ارتباط و مدیریت یك سیستم راه دور هستند اما مكانیزهای امنیتی در آن ها استفاده نشده است و به راحتی می توان با شنود كردن ارتباط میان دو كامپیوتر در سطح شبكه ، به اطلاعات بسیار ارزشمندی مانند اسم و رمز كاربری كامپیوتری راه دور دست یافت.SSH یك تونل ارتباطی رمز شده میان دو كامپیوتر به وجود می آورد و داده های به صورت كد شده میان دو كامپیوتر تبادل می شوند و در نتیجه حتی در صورت به دست آوردن اطلاعات تبادل شده میان این دو كامپیوتر ، امكان بهره برداری از آنها وجود ندارد. SSH یك سرویس امنیتی برای مقابله با طیف گسترده ای از حملا ت اینترنتی است. SSH ذاتا یك پروتكل است و استانداردهای یك ارتباط رمز شده برای اداره یك سیستم از راه دور را فراهم می كند.۱SSH اولین نسخه از این پروتكل است كه با اصلاحاتیSSH۲ تبدیل شده است. SSH۲ از امكانات وقابلیت های بیشتری به نسبت نسخه قبلی برخوردار است و دستورات و برنامه های گسترده تری دارد. نسخه رایگان و آزاد این پروتكل ، با نام open SSH توسط گروه سیستم عامل openBSD منتشرمی شود. SSH یك ابزار كاملا خط فرمان است كه فقط در كنسول های متنی قابل استفاده می باشد و برای به كارگیری در سیستم های mac و ویندوز نیز به كنسول خط فرمان نیاز دارد. ارائه راهنمای كاملی از راه اندازی ، پیكربندی و استفاده از سرویس SSH به طور موثر و كارا ، كاری خارج از عهده یك مقاله است وكتابی مفصل و جامع را طلب می كند. هدف این نوشتار شناخت این سرویس امنیتی در كنار قابلیت های آن در سیستم عامل لینوكس و ارائه كلیدهایی به خواننده برای پیگری و مطالعه هدفمند موضوع است.

شروع كار با SSH

SSH یك برنامه سرویس دهنده/ سرویس گیرنده است. بر روی كامپیوتر راه دوری كه باید به آن متصل شد، برنامه سرویس دهنده sshd نصب می شود و برنامه های كاربردی بر روی سیستم های كاربران یا مدیر سیستمی كه می خواهد از راه دور كامپیوتر مورد نظر را اداره كند، اجرا می شوند. همچنین می توان از شاخه etc/ssh/ به فایل های پیكربندی برنامه دسترسی داشت. sshdconfig فایل پیكربندی سرویس دهنده sshd است. دایركتوری HIME/ssh$ برروی سیستم هركاربر شامل فایل هایی مانند كلید عمومی و فایل های پیكربندی خود كاربر می باشد. در بسیاری از توزیع های لینوكس هردو سرویس به صورت پیش فرض نصب و تنظیم می شوند.SSH از پروتكل SSL برای تبادل اطلاعات رمز شده میان سیستم ها استفاده می كند. بنابراین برای كار با SSH به نصب openSSL نیاز دارید. در صورتی كه این دو سرویس برروی توزیع لینوكس نصب نباشند، می توان با دریافت بسته های نرم افزاری آن ها ، به نصب و پیكربندی این دو سرویس اقدام نمود.
SSH از دو كلیدعمومی (public) و خصوصی (private) برای احراز هویت و رمز گشایی اطلاعات استفاده می كند. كلید عمومی میان تمامی كاربران به اشتراك گذاشته می شود ، اما هر كاربر فقط یك كلید خصوصی منحصربه فرد داردكه با استفاده از آن، شناسایی و احراز هویت می گردد.۱ SSH از الگوریتم رمزنگاری RSA برای كد كردن اطلاعات استفاده می كند ، ولی علاوه بر از الگوریتم DSA نیز استفاده می كند.پس از نصب و پیكربندیSSH، باید كلیدهای عمومی تولید و میان سیستم ها به اشتراك گذاشته شوند.
برای راه اندازی یك سرویسSSH پس از نصب برنامه ، مراحل كاربه صورت زیرخواهد بود:
۱- تولید كلید های عمومی و خصوصی برای هركاربر.
۲- به اشتراك گذاری كلید عمومی میان تمامی كامپیوترهایی كه می خواهند از سرویس SSH استفاده كنند.
۳- دسترسی به حساب كاربری سیستمی كه باید از راه دور با آن ارتباط داشت.

تولید كلید های RSA

پس از نصب سرویس SSH ، در اولین گام باید كلید عمومی و خصوصی ساخته شود.در۲ SSH این امكان وجود دارد كه از هر دو الگوریتم رمزنگاری rsa و dsa برای ساخت كلیدها استفاده شود ، ولی در۱ SSH فقط الگوریتم rsa به كار برده می شود. برای تولید كلیدهای rsa یا dsaاز فرمان sshkeygenدر حساب ریشه استفاده می كنیم
–keygen-trsa [ [misagh@teamset
بااجرا این دستور از مكانی كه می خواهید فایل های شما در آن جا ذخیره شوند سوال می شود. آرگومان t باعث نشان دادن مراحل كار و نام و مكان فایل می شود. می توانید با كمك صفحات manاز آرگومان های دیگر این فرمان هم كمك بگیرید. پارامترrsa هم به برنامه می گوید كه برای رمز كردن usemame و password از این الگوریتم استفاده شود. اصطلاحا به عملیات رمز نمودن اطلاعات و یا رمز گشایی آن ها passphrase گفته می شود. می توانید از الگوریتم dsa هم در SSH ۲ استفاده كنید. به صورت پیش فرض سیستم ، دایركتوری مخفی ssh را در دایركتوری خانگی شما برای ذخیره فایل ها در نظر می گیرد. (HOME/.ssh$) درssh۱ نامidentity.pub و در SSH۲idrsa.pub برای فایل كلید عمومی انتخاب می شود. در ادامه یك رمز برای كد كردن اسم و رمز كاربری شما و تولید كلید عمومی و خصوصی درخواست می شود. اگر این رمز را وارد نكنید، ممكن است سیستم به صورت پیش فرض یك عدد را انتخاب كند یا مجددا از شما تقاضای یك passphrase كند. بعد از اتمام عملیات، اكنون در دایركتوری HOME/.ssh/idrsa$ یا HOME/.ssh/identity$ می توانید كلید عمومی و خصوصی تولید شده را مشاهده كنید.HOME/.ssh/authorizedkeys $ دایركتوری مهم دیگری است كه در همین شاخه وجود دارد و باید كلید عمومی تمام كاربران در این دایركتوری به اشتراك گذاشته شود. پس از اینكه كلید عمومی ساخته شد، یك كپی از آن را باید در دایركتوری به همین نام ، ولی بر روی كامپیوتری كه می خواهید از راه دور به آن متصل شوید ، كپی كنید. فرمان keygen این قابلیت را دارد كه بتوانید یك passphrase جدید برای خود درست كنید یا آن را تغییر دهید.برای این منظور می توان از آرگومان-p استفاده كرد. اگر تمایل دارید از الگوریتم رمزنگاری dsa در passphrsae استفاده كنید ، در همان فرمان بالا das را به جای rsa به كار ببرید.

برقراری یك نشست SSH با سرویس راه دور

برای راه اندازی سرویس دهندهSSH برروی یك سیستم، از دستور زیراستفاده می شود:etc/init.d/ssh start/ برنامه های كاربردی زیادی تحت سرویسSSH قابل اجرا هستند. مهمترین آن ها خود برنامهSSH است، با استفاده از این برنامه می توان با یك كامپیوتر راه دور (كامپیوتری خارج از یك شبكهlan ) به یك كامپیوتر شبكه متصل شد و رامین و دستورات خود را در شبكه اجرا كرد و در اصطلاح ازراه دور به یك كامپیوتر login كرد. برای آن كه بتوانید به یك كامپیوتر راه دور دسترسی داشته باشید ، نیاز است بر روی كامپیوتر مقصد، سرویس دهنده ssh فعال باشد و كلید عمومی شما نیزبه اشتراك گذاشته شده باشد. برنامه SSH این مكان را می دهد كه وارد ترمینال سیستم راه دور شوید. درست مانند آن كه الان در مقابل آن سیستم ایستاده اید و می خواهید دستورات خود را اجرا كنید. یا از طریق كنسولX window بتوانید با محیط های گرافیكی سیستم كار كنید. شكل كلی فرمانSSH به صورت زیر می باشد: ssh hostname
كافی است نام شبكه یا ماشینی كه می خواهید از راه دور به آنlogin كنید را مقابل فرمان ssh وارد كنید . به مثال های زیر توجه كنید:
ssh kemel.linuxteam.com
ssh ۶۹۱.۷۱.۱۵۱.۷
ssh rootrobin
دراین فرمان می توان نام ماشین یك كاربر خاص را نیز وارد كرد و پس از وارد پسورد سیستم ، مانند این است كه اكنون در مقابل آن سیستم نشسته اید:
۸ masteam.totule.com-۱client[lient۱۲@masteamclient۱۲]
client@masteam.totule.com&#۰۳۹;s password:
lastlogin:sat may۱۹۱۲:۴۰:۰۳ ۲۰۰۵ form masteam. Totule.com

[lient۸@mateam client]

برای خاتمه ارتباط با ماشین راه دور ، از فرمان logout استفاده می شود.

logout [client۸@mateamclient۸]

Connection to mastteam closed
انتقال فایل با برنامه هایscp وsftp
در یك ارتباط راه دور با SSH می توان فایل را از یك ماشین به ماشین راه دور دیگری انتقال داد. برنامه scp این امكان را تحت یك نشست SSH فراهم می كند. ساختار فرمان به صورت زیر خواهد بود.
Scp name-of source file name –of –distination file

scp myfileclient۸[client۲۱ masteam client۲۱]

masteam.totule.com:/lib/myfile
در این دستور همیشه نام كامپیوتر و كاربر پیش از نام دایركتوری یا فایل آورده می شود. همچنین برای كپی كردن یك دایر كتوری ، بایداز آرگومانr استفاده كنید.

scp r reportsclinet۸masteam.totule[clinet۲۱masteam clinet۲۱]

.com:/lib/myfile
اگر بخواهید ازسیستم راه دوری كه به آن login كرده اید فایلی را به سیستم خود منتقل كنید، ابتدا با دستور ssh به سیستم راه دور متصل شوید و در گام بعدی با دستورscp فایل های مورد نظر را به سیستم خود منتقل نمایید.
Scp به تمام نیاز شما پاسخ می دهد.اما گروهی از كاربران با پروتكل FTP آشنایی بیشتری دارند و با تكنیك های این روش انتقال فایل در اینترنت، خو گرفته اند. در SSH۲ ، فراهم آورنده این سرویس sftp است. با این ویژگی كه شما از یك كنسول حفاظت شده برای تبادل اطلاعات و فایل های خود استفاده می كنید.

جلوگیری از تكرار

فرض كنید مسئول یك شبكه كامپیوتری هستید و بخشی از شبكه در شهر دیگری مستقر است و شما برای مدیریت سیستم ها مجبورید روزانه چندین دفعه با هر سیستم از راه دور ارتباط برقرار كنید. برای هر سیستم باید یك عملیات passphrase را انجام دهید و این ، وقت و انرژی زیادی از شما خواهد گرفت. فرمان ssh-agent این امكان را به شما می دهدكه فقط یك بار مجبور باشید به سیستم راه دور متصل شوید و بر روی سیستم مقصد سرویس agent را فعال كنید.در مراجعات بعدی فقط كافی استكه شما دستورات خود را بدون login كردن به سیستم انجام دهید. پروسه agent كلید خصوصی شما را در حافظه خود نگهداری می كند تا در ارتباط های بعدی ، خود سرویس دهنده عملیات احرازهویت را انجام دهد. به دوطریق می توان ازسرویس agent استفاده كرد. در اولین حالت با استفاده از مد ssh-agent دستورات وعملیات خود را انجام می دهید. مثلا فرض كنید می خواهید به كنسول خط فرمان سیستم راه دوردسترسی داشته باشید و فرامین خود را در آن تایپ واجرا كنید :
ssh-agent xterm
این دستور به شما اجازه می دهد تمامی دستورات و فرامین خود را بدون نیاز به احرازهویت برروی سیستم راه دور انجام دهید . هربرنامه ای كه در xterm اجرا شود ، به كلید خصوصی شما دسترسی خواهدداشت وبا مقایسه آن با كلید عمومی به صورت خودكار ، مجوز شما صادر خواهد شد. گفتنی است در نخستین بار كه به سیستم راه دور دسترسی پیدا كردید، قبل از هر عملیاتی باید سرویس agent را فعال كنید تا در دسترسی های بعدی بتوانید از این سرویس استفاده كنید.
درروش دوم می توان با استفاده ازمد eval به اجرای سرویس agent در پس زمینه اقدام كرد:
Ssh
Eval ssh-agent

پیكربندی

از بین فایل های و دایركتوری های سرویس SSH ، شما بیشتر با فایل های sshdconfig و ssh/config . كار خواهید داشت و باید گزینه های آن ها را تنظیم كنید.
Sshdconfig فایل پیكربندی سرویس دهنده sshd است كه تنظیمات امنیتی وسیستمی ازجمله تعیین شماره پورت SSH ، شماره نسخه پروتكل SSL ، مدیریت رمزهای و عبور كاربران و كار در بالاترین مجوز دسترسی را دراختیار شمامی گذارد. مهمترین تنظیمات كاربران درفایل ssh/config . قرار داردكه هركاربر می تواند به صورت مستقیم به آن دسترسی وسرویس SSH سیستم خود را به طور دلخواه تنظیم كند. مهمترین پارامترهای این فایل عبارتند از:
▪ Catchmod : برای غیر فعال كردن عملیات پرس وجو
▪ Compression : امكان استفاده از قابلیت فشرده سازی فایل ها
▪ Escapechar : تنظیمات مرتبط با كاراكترهای ویژه در سرویس SSH
▪ Forwardagent : امكان استفاده از سرویس agent
▪ Forwardx۱۱ : امكان برقراری یك نشست با محیط های گرافیكی به صورت امن
▪ Hostname : تنظیم شدن نام حقیقی ماشینی كه به آنlogin می شود
▪ Identityfile : تنظیمات مربوط به فایل های شناسه RSA
▪ passwordAuthentication : فعال كردن رمز عبور در فرایند احراز
ارسال مقاله توسط کاربر محترم سایت : sm1372